]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
messageTray: Re-enable unredirection when banner is destroyed
authorFlorian Müllner <fmuellner@gnome.org>
Thu, 22 Nov 2018 17:18:34 +0000 (18:18 +0100)
committerJonas Ådahl <jadahl@gmail.com>
Wed, 5 Dec 2018 18:11:39 +0000 (18:11 +0000)
The intention of commit 4dc20398 was to disable unredirection while
banners are shown, but the ::done-displaying signal currently used for
re-enabling unredirection is only emitted under some circumstances, so
it's possible that unredirection is left disabled indefinitely, whoops.

Fix this by tying disabling unredirection explicitly to the lifetime
of the banner actor.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/799

js/ui/messageTray.js

index f8e2f0b9f907c6f18bf565b4f19b479d2243d424..eebc93fdf4a26b542af00c8b0aeaefee034bbb33 100644 (file)
@@ -1298,10 +1298,8 @@ var MessageTray = new Lang.Class({
         }
 
         this._banner = this._notification.createBanner();
-        this._bannerClickedId = this._banner.connect('done-displaying', () => {
-            Meta.enable_unredirect_for_display(global.display);
-            this._escapeTray();
-        });
+        this._bannerClickedId = this._banner.connect('done-displaying',
+                                                     this._escapeTray.bind(this));
         this._bannerUnfocusedId = this._banner.connect('unfocused', () => {
             this._updateState();
         });
@@ -1451,6 +1449,7 @@ var MessageTray = new Lang.Class({
 
         this._pointerInNotification = false;
         this._notificationRemoved = false;
+        Meta.enable_unredirect_for_display(global.display);
 
         this._banner.actor.destroy();
         this._banner = null;